﻿using Zhp.Auth.Model;

namespace Zhp.Auth.IService
{
    public interface IOnlineService
    {
        public List<OnlineUserViewModel> GetOnlineUserList(OnlineUserQuery query);
        public List<OnlineUserModel> GetOnlineActiveUserList();

        public IsOnlineInfo IsRefreshOnline(string cacheId, string refreshTokenId);
        public IsOnlineInfo IsAccessOnline(string cacheId, string refreshTokenId);
        public OnlineUserModel GetOnlineUser(string cacheId);
        public void AddOnlineUser(OnlineUserModel onlineUser);

        public void RemoveOnlineUser(string cacheId);

        public void ForcedRemoveOfflineUser(string cacheId);

        public bool IsMultiClientLogin();

        public DateTime GetAccessExpiresDate(DateTime dateTime);

        public DateTime GetRefreshExpiresDate(DateTime dateTime);
    }
}
